#include "mainscene.h"
#include "ui_mainscene.h"
#include <QPainter>
#include <QDebug>
#include <QTimer>
#include "mypushbutton.h"

MainScene::MainScene(QWidget *parent)
        : QMainWindow(parent), ui(new Ui::MainScene)
{
    ui->setupUi(this);

    // 配置主场景
    // 设置固定大小
    setFixedSize(320, 588);
    // 设置图标
    setWindowIcon(QIcon(":/res/Coin0001.png"));
    // 设置标题
    setWindowTitle("翻金币主场景");

    // 退出按钮
    connect(ui->actionQuit, &QAction::triggered, [=]() {
        this->close();
    });

    // 开始按钮
    auto startBtn = new MyPushButton(":/res/MenuSceneStartButton.png");
    startBtn->setParent(this);
    startBtn->move(width() * 0.5 - startBtn->width() * 0.5, height() * 0.7);

    // 实例化选择关卡场景
    chooseLevelScene = new ChooseLevelScene;

    // 监听选择关卡的返回按钮的信号
    connect(chooseLevelScene, &ChooseLevelScene::chooseSceneBack, this, [=](){
        chooseLevelScene->hide();
        this->show();   // 重新显示主场景
    });

    // 点击开始按钮
    connect(startBtn, &MyPushButton::clicked, [=]() {
        qDebug() << "点击了开始";
        startBtn->zoom1();
        startBtn->zoom2();

        // 延时（不延时看不到弹跳效果） 进入到选择关卡场景中
        QTimer::singleShot(300, this, [=]() {
            // 自身隐藏
            this->hide();
            // 显示选择关卡场景
            chooseLevelScene->show();
        });
    });
}

MainScene::~MainScene()
{
    delete ui;
}

/**
 * 画背景
 * @param event
 */
void MainScene::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    QPixmap pix;
    pix.load(":/res/PlayLevelSceneBg.png");
    //painter.drawPixmap(0,0,pix);    // 图片没有沾满整个窗口
    painter.drawPixmap(0, 0, this->width(), this->height(), pix);

    // 画背景上图标
    pix.load(":/res/Title.png");
//    painter.drawPixmap(0, 0, pix);
    painter.drawPixmap(10, 30, pix.scaled(pix.width() * 0.5, pix.height() * 0.5));  // 缩放
}

